export default class Scanner{
    constructor(template_str){
        this.template_str = template_str
        this.pos = 0
        this.tail = template_str
    }
    scan(tag){
        if(this.tail.indexOf(tag) === 0){
            this.pos += tag.length
            this.tail = this.template_str.substring(this.pos)
        }
    }
    scan_until(stop_tag){
        const pos_start = this.pos
        while(!(this.eos()) && this.tail.indexOf(stop_tag) !== 0 ){ //当尾巴的第0位不是stop_tag的时候，证明还没扫描到
            this.pos++
            this.tail = this.template_str.substring(this.pos) // 改变尾巴从当前指针开始到结尾
        }

        return this.template_str.substring(pos_start,this.pos)
    }

    eos(){
        return this.pos >= this.template_str.length
    }
}